package com.cashmama.market.api.infras.enums;

import com.cashmama.market.api.infras.utils.StringUtils;

/**
 * @author zsp
 * @date 2019_12_23
 */
public enum BankEnum implements ProfileInputBaseEnum{
    ANDHRA_BANK(2, "Andhra Bank"),
    AXIS_BANK(3, "Axis Bank"),
    BANK_OF_BARODA(4, "Bank of Baroda"),
    BANK_OF_INDIA(5, "Bank of India"),
    BASSEIN_CATHOLIC_CO_OPERATIVE_BANK(6, "Bassein Catholic Co_operative Bank"),
    CANARA_BANK(8, "Canara Bank"),
    CENTRAL_BANK_OF_INDIA(9, "Central Bank of India"),
    CITI_BANK(10, "CITI Bank"),
    CORPORATION_BANK(11, "Corporation Bank"),
    DENA_BANK(12, "Dena Bank"),
    DEVELOPMENT_BANK_OF_SINGAPORE(13, "Development Bank of Singapore"),
    DOMBIVLI_NAGARI_SAHAKARI_BANK(15, "Dombivli Nagari Sahakari Bank"),
    FEDERAL_BANK(16, "Federal Bank"),
    HDFC_BANK(17, "HDFC Bank"),
    ICICI_BANK(19, "ICICI Bank"),
    IDBI(20, "IDBI"),
    INDIAN_BANK(21, "Indian Bank"),
    INDUSIND_BANK(22, "Indusind Bank"),
    JAMMU_AND_KASHMIR_BANK(24, "Jammu and Kashmir Bank"),
    JANATA_SAHAKARI_BANK_PUNE(25, "Janata Sahakari Bank (Pune)"),
    KARUR_VYSYA_BANK(26, "Karur Vysya Bank"),
    KOTAK_MAHINDRA_BANK(27, "Kotak Mahindra Bank"),
    NKGSB_CO_OPERATIVE_BANK(28, "NKGSB Co_operative Bank"),
    ORIENTAL_BANK_OF_COMMERCE(29, "Oriental Bank of Commerce"),
    PUNJAB_MAHARASHTRA_CO_OPERATIVE_BANK(30, "Punjab _ Maharashtra Co_operative Bank"),
    PUNJAB_NATIONAL_BANK(31, "Punjab National Bank"),
    SARASWAT_CO_OPERATIVE_BANK(32, "Saraswat Co_operative Bank"),
    SOUTH_INDIAN_BANK(33, "South Indian Bank"),
    STATE_BANK_OF_INDIA(36, "State Bank of India"),
    SYNDICATE_BANK(40, "Syndicate Bank"),
    TAMILNADU_MERCANTILE_BANK(41, "Tamilnadu Mercantile Bank"),
    COSMOS_CO_OPERATIVE_BANK(42, "Cosmos Co_operative Bank"),
    GREATER_BOMBAY_CO_OPERATIVE_BANK(43, "Greater Bombay Co_operative Bank"),
    MEHSANA_URBAN_CO_OPERATIVE_BANK(44, "Mehsana Urban Co_operative Bank"),
    THANE_JANATA_SAHAKARI_BANK(46, "Thane Janata Sahakari Bank"),
    UCO_BANK(47, "UCO bank"),
    UNION_BANK_OF_INDIA(48, "Union Bank of India"),
    UNITED_BANK_OF_INDIA(49, "United bank of India"),
    VIJAYA_BANK(50, "Vijaya Bank"),
    YES_BANK(51, "Yes Bank"),
    AHMEDABAD_DISTRICT_CENTRAL_CO_OPERATIVE_BANK_LTD(54, "Ahmedabad District Central Co_operative Bank Ltd"),
    ALLAHABAD_BANK(55, "Allahabad Bank"),
    ANDHRA_PRADESH_GRAMEENA_VIKAS_BANK(56, "Andhra Pradesh Grameena Vikas Bank"),
    ANDHRA_PRAGATHI_GRAMEEN_BANK(57, "Andhra Pragathi Grameen Bank"),
    APNA_SAHAKARI_BANK_LTD(58, "Apna Sahakari Bank Ltd"),
    ARUNACHAL_PRADESH_RURAL_BANK(59, "Arunachal Pradesh Rural Bank"),
    BANDHAN_BANK(61, "Bandhan Bank"),
    BANK_OF_MAHARASHTRA(64, "Bank of Maharashtra"),
    BARCLAYS_BANK_PLC(65, "Barclays Bank PLC"),
    BARODA_GUJARAT_GRAMIN_BANK(66, "Baroda Gujarat Gramin Bank"),
    BARODA_RAJASTHAN_KSHETRIYA_GRAMIN_BANK(67, "Baroda Rajasthan Kshetriya Gramin Bank"),
    BARODA_UTTAR_PRADESH_GRAMEEN_BANK(68, "Baroda Uttar Pradesh Grameen Bank"),
    BHARATIYA_MAHILA_BANK(70, "Bharatiya Mahila Bank"),
    CATHOLIC_SYRIAN_BANK(71, "Catholic Syrian Bank"),
    CHHATTISGARH_RAJYA_GRAMIN_BANK(72, "Chhattisgarh Rajya Gramin Bank"),
    CITIBANK(73, "Citibank"),
    CITY_UNION_BANK(74, "City Union Bank"),
    DBS(77, "DBS"),
    DCB(78, "DCB"),
    DOMBIVLI_NAGARIK_SAHAKARI_BANK(80, "Dombivli Nagarik Sahakari Bank"),
    DR_ANNASAHEB_CHOUGULE_URBAN_CO_OPERATIVE_BANK_LTD(81, "Dr Annasaheb Chougule Urban Co_operative Bank Ltd"),
    GAYATRI_CO_OPERATIVE_URBAN_BANK(83, "Gayatri Co_operative Urban Bank"),
    GOPINATH_PATIL_PARSIK_JANATA_SAHAKARI_BANK(84, "Gopinath Patil Parsik Janata Sahakari Bank"),
    HONGKONG___SHANGHAI_BANKING_CORPORATION(86, "Hongkong _ Shanghai Banking Corporation"),
    HUTATMA_SAHAKARI_BANK_LTD(87, "Hutatma Sahakari Bank Ltd"),
    IDBI_BANK(89, "IDBI Bank"),
    IDFC_FIRST_BANK(90, "IDFC FIRST Bank"),
    INDIAN_OVERSEAS_BANK(92, "Indian Overseas Bank"),
    IRINJALAKUDA_TOWN_CO_OPERATIVE_BANK_LTD(94, "Irinjalakuda Town Co_operative Bank Ltd"),
    JALORE_NAGRIK_SAHAKARI_BANK_LTD(95, "Jalore Nagrik Sahakari Bank Ltd"),
    JAMMU___KASHMIR_GRAMEEN_BANK(96, "Jammu _ Kashmir Grameen Bank"),
    JANASEVA_SAHAKARI_BANK(98, "Janaseva Sahakari Bank"),
    JANATA_CO_OPERATIVE_BANK_LTD_MALEGAON(99, "Janata Co_operative Bank Ltd, Malegaon"),
    JANATA_SAHAKARI_BANK_PUNE_1(100, "Janata Sahakari Bank, Pune"),
    KALLAPPANNA_AWADE_ICHALKARANJI_JANATA_SAHAKARI_BANK(101, "Kallappanna Awade Ichalkaranji Janata Sahakari Bank"),
    KALYAN_JANATA_SAHAKARI_BANK_LTD(102, "Kalyan Janata Sahakari Bank Ltd"),
    KARNATAKA_BANK(103, "Karnataka Bank"),
    KARNATAKA_VIKAS_GRAMEENA_BANK(104, "Karnataka Vikas Grameena Bank"),
    KASHI_GOMTI_SAMYUT_GRAMEEN_BANK(106, "Kashi Gomti Samyut Grameen Bank"),
    KAVERI_GRAMEEN_BANK(107, "Kaveri Grameen Bank"),
    KERALA_GRAMIN_BANK(108, "Kerala Gramin Bank"),
    LAKSHMI_VILAS_BANK(110, "Lakshmi Vilas Bank"),
    LANGPI_DEHANGI_RURAL_BANK(111, "Langpi Dehangi Rural Bank"),
    LOKMANGAL_CO_OPERATIVE_BANK_LTD_SOLAPUR(112, "Lokmangal Co_operative Bank Ltd, Solapur"),
    MADHYANCHAL_GRAMIN_BANK(113, "Madhyanchal Gramin Bank"),
    MAHARASHTRA_GRAMEEN_BANK(114, "Maharashtra Grameen Bank"),
    MARATHA_CO_OPERATIVE_BANK_LTD(115, "Maratha Co_operative Bank Ltd"),
    MEGHALAYA_RURAL_BANK(116, "Meghalaya Rural Bank"),
    MIZORAM_RURAL_BANK(118, "Mizoram Rural Bank"),
    NAINITAL_BANK(119, "Nainital Bank"),
    NATIONAL_CO_OPERATIVE_BANK(120, "National Co Operative Bank"),
    NUTAN_NAGARIK_SAHAKARI_BANK_LTD(122, "Nutan Nagarik Sahakari Bank Ltd"),
    ODISHA_GRAMYA_BANK(123, "Odisha Gramya Bank"),
    PANDHARPUR_MERCHANT_CO_OPERATIVE_BANK(125, "Pandharpur Merchant Co_operative Bank"),
    PARSHWANATH_CO_OPERATIVE_BANK_LTD(126, "Parshwanath Co_operative Bank Ltd"),
    POCHAMPALLY_URBAN_CO_OPERATIVE_BANK(127, "Pochampally Urban Co Operative Bank"),
    PRAGATHI_KRISHNA_GRAMIN_BANK(128, "Pragathi Krishna Gramin Bank"),
    PRATHAMA_GRAMIN_BANK(129, "Prathama Gramin Bank"),
    PUNE_CANTONMENT_SAHAKARI_BANK_LTD(130, "Pune Cantonment Sahakari Bank Ltd"),
    PUNE_PEOPLES_CO_OPERATIVE_BANK_LTD(131, "Pune Peoples Co_operative Bank Ltd"),
    PUNJAB_AND_MAHARASHTRA_CO_OPERATIVE_BANK(132, "Punjab and Maharashtra Co_operative Bank"),
    PUNJAB_AND_SIND_BANK(133, "Punjab and Sind Bank"),
    PURVANCHAL_BANK(135, "Purvanchal Bank"),
    RAIPUR_URBAN_MERCHANTILE_CO_OPERATIVE_BANK_LTD(136, "Raipur Urban Merchantile Co_operative Bank Ltd"),
    RAJAPUR_URBAN_CO_OPERATIVE_BANK_LTD(137, "Rajapur Urban Co_operative Bank Ltd"),
    RAJASTHAN_MARUDHARA_GRAMIN_BANK(138, "Rajasthan Marudhara Gramin Bank"),
    RAJGURUNAGAR_SAHAKARI_BANK_LTD(139, "Rajgurunagar Sahakari Bank Ltd"),
    RBL_BANK_LTD(140, "RBL Bank Ltd"),
    SARASWAT_BANK(141, "Saraswat Bank"),
    SAURASHTRA_GRAMIN_BANK(142, "Saurashtra Gramin Bank"),
    SHAMRAO_VITHAL_CO_OPERATIVE_BANK_LTD(143, "Shamrao Vithal Co_operative Bank Ltd"),
    SHIVAJIRAO_BHOSALE_SAHAKARI_BANK_LTD(144, "Shivajirao Bhosale Sahakari Bank Ltd"),
    SHRI_ARIHANT_CO_OPERATIVE_BANK_LTD(145, "Shri Arihant Co_operative Bank Ltd"),
    SHRI_BASAVESHWAR_SAHAKARI_BANK_NIYAMIT_BAGALKOT(146, "Shri Basaveshwar Sahakari Bank Niyamit, Bagalkot"),
    SHRI_VEERSHAIV_CO_OPERATIVE_BANK_LTD(147, "Shri Veershaiv Co_operative Bank Ltd"),
    SUCO_SOUHADRA_SAHAKARI_BANK(154, "SUCO Souhadra Sahakari Bank"),
    SUTLEJ_GRAMIN_BANK(155, "Sutlej Gramin Bank"),
    SUVARNAYUG_SAHAKARI_BANK_LTD(156, "Suvarnayug Sahakari Bank Ltd"),
    TAMILNAD_MERCANTILE_BANK(158, "Tamilnad Mercantile Bank"),
    TELANGANA_GRAMEENA_BANK(159, "Telangana Grameena bank"),
    THANE_BHARAT_SAHAKARI_BANK_LTD(160, "Thane Bharat Sahakari Bank Ltd"),
    THE_AP_MAHESH_URBAN_CO_OPERATIVE_BANK(162, "The AP Mahesh Urban Co_operative Bank"),
    THE_ABHYUDAYA_CO_OPERATIVE_BANK_LTD(163, "The Abhyudaya Co_operative Bank Ltd"),
    THE_ADARSH_URBAN_CO_OPERATIVE_BANK_LTD_HYDERABAD(164, "The Adarsh Urban Co_operative Bank Ltd, Hyderabad"),
    THE_BHARAT_CO_OPERATIVE_BANK_MUMBAI_LTD(165, "The Bharat co_operative Bank (MUMBAI) Ltd"),
    THE_CHIKHLI_URBAN_CO_OPERATIVE_BANK_LTD(166, "The Chikhli Urban Co_operative Bank Ltd"),
    THE_GREATER_BOMBAY_CO_OPERATIVE_BANK(167, "The Greater Bombay Co_operative Bank"),
    THE_GUJARAT_STATE_CO_OPERATIVE_BANK_LTD(168, "The Gujarat State Co_operative Bank Ltd"),
    THE_HASTI_CO_OPERATIVE_BANK_LTD(169, "The Hasti Co_operative Bank Ltd"),
    THE_JALGAON_PEOPLES_CO_OPERATIVE_BANK_LTD(170, "The Jalgaon Peoples Co_operative Bank Ltd"),
    THE_KALUPUR_COMMERCIAL_CO_OPERATIVE_BANK_LTD(171, "The Kalupur Commercial Co_operative Bank Ltd"),
    THE_MAHANAGAR_COOP_BANK_LTD(172, "The Mahanagar CoOp Bank Ltd"),
    THE_MAYANI_URBAN_CO_OPERATIVE_BANK_LTD(173, "The Mayani Urban Co_operative Bank Ltd"),
    THE_MUNICIPAL_CO_OPERATIVE_BANK_LTD(174, "The Municipal Co_operative Bank Ltd"),
    THE_PANDHARPUR_URBAN_CO_OPERATIVE_BANK_LTD(175, "The Pandharpur Urban Co_operative Bank Ltd"),
    THE_SHIRPUR_PEOPLES_CO_OPERATIVE_BANK_LTD(176, "The Shirpur Peoples Co_operative Bank Ltd"),
    THE_SURAT_DISTRICT_CO_OPERATIVE_BANK_LTD(177, "The Surat District Co_operative Bank Ltd"),
    THE_SUTEX_CO_OPERATIVE_BANK_LTD(178, "The Sutex Co_operative Bank Ltd"),
    THRISSUR_DISTRICT_CO_OPERATIVE_BANK(179, "Thrissur District Co_operative Bank"),
    UTKAL_GRAMEEN_BANK(183, "Utkal Grameen Bank"),
    UTTARAKHAND_GRAMIN_BANK(184, "Uttarakhand Gramin Bank"),
    VANANCHAL_GRAMIN_BANK(185, "Vananchal Gramin Bank"),
    VARACHHA_CO_OPERATIVE_BANK_LTD(186, "Varachha Co_operative Bank Ltd"),
    VISHWESHWAR_SAHAKARI_BANK_LTD(188, "Vishweshwar Sahakari Bank Ltd"),
    YADAGIRI_LAKSHMI_NARASIMHA_SWAMY_CO_OP_URBAN_BANK_LTD(189, "Yadagiri Lakshmi Narasimha Swamy Co Op Urban Bank Ltd"),
    YES_BANK_LTD(190, "Yes Bank Ltd"),
    BANK_OF_MAHARASTRA(192, "Bank of Maharastra"),
    BANK_OF_PUNJAB(193, "Bank of Punjab"),
    CENTURION_BANK(197, "Centurion Bank"),
    STANDARD_CHARTERED_BANK(202, "Standard Chartered Bank");


    private int type;

    private String desc;

    BankEnum(int type, String desc) {
        this.type = type;
        this.desc = desc;
    }

    public Integer getType() {
        return type;
    }

    public BankEnum setType(int type) {
        this.type = type;
        return this;
    }

    public String getDesc() {
        return desc;
    }

    public BankEnum setDesc(String desc) {
        this.desc = desc;
        return this;
    }

    public static BankEnum getBankEnumByType(Integer type){
        if(type == null){
            return null;
        }
        for(BankEnum bank : BankEnum.values()){
            if(bank.getType() == type){
                return bank;
            }
        }
        return null;
    }

    public static BankEnum getBankEnumByDesc(String desc){
        if(StringUtils.isEmpty(desc)){
            return null;
        }
        for(BankEnum bank : BankEnum.values()){
            if(bank.getDesc().equalsIgnoreCase(desc)){
                return bank;
            }
        }
        return null;
    }
}

